// 因为链表是有序的，所以重复元素一定相邻
// 遍历链表，如果发现当前元素和下个元素值相同，就删除下个元素值

const deleteDuplicates = (head) => {
  let p = head;
  while (p && p.next){
    if(p.val === p.next.val){
      p.next = p.next.next;
      //删除后就无需再.next了，防止遇到 111 这种连续3个及以上重复的情况

    } else {
      p = p.next;
    }
  }

  return head;
};

//时间复杂: 有一个while循环体 时间复杂度为O(n) n即为链表的长度
//空间复杂度: 没有任何数组 和 矩阵, 空间复杂度为O(1)
